from math import *
x=[24.533,16.033,35.95,7.85,0.583,16.867,6.95,0.333,18.25,10.583,14.8,7.333]
y=[0.34,0.264,0.443,0.19,0.126,0.271,0.182,0.123,0.283,0.215,0.252,0.185]
f=("a+b*x","a*b**x","1/(a+b*x)","a+b*log(x)","a*x**b","1/(a+b*log(x))",
   "a+b/x","a*b**(1/x)","x/(a+b*x)")
n=len(x)
xl=[log(w) for w in x]
xi=[1/w for w in x]
yl=[log(w) for w in y]
yi=[1/w for w in y]
xy=([w*z for w,z in zip(x,y)])
vm=[sum(x),sum(xl),sum(xi),sum(y),sum(yl),sum(yi)]
vc=[sum([w*w for w in x]),sum([w*w for w in xl]),sum([w*w for w in xi]),
    sum([w*w for w in y]),sum([w*w for w in yl]),sum([w*w for w in yi])]
vc=[vc[i]-vm[i]**2/n for i in range(0,6)]
xy=[sum([w*z for w,z in zip(x,y)]),sum([w*z for w,z in zip(x,yl)]),
    sum([w*z for w,z in zip(x,yi)]),sum([w*z for w,z in zip(xl,y)]),
    sum([w*z for w,z in zip(xl,yl)]),sum([w*z for w,z in zip(xl,yi)]),
    sum([w*z for w,z in zip(xi,y)]),sum([w*z for w,z in zip(xi,yl)]),
    sum([w*z for w,z in zip(xi,yi)])]
xy=[xy[i*3+j]-vm[i]*vm[3+j]/n for i in range(0,3) for j in range(0,3)]
b=[xy[i*3+j]/vc[i] for i in range(0,3) for j in range(0,3)]
a=[(vm[3+j]-vm[i]*b[i*3+j])/n for i in range(0,3) for j in range(0,3)]
d=[b[i*3+j]*xy[i*3+j]/vc[3+j] for i in range(0,3) for j in range(0,3)]
aa,bb=a,b
a[1],a[4],a[7],a[8],b[1],b[7],b[8]=exp(aa[1]),exp(aa[4]),exp(aa[7]),bb[8],exp(bb[1]),exp(bb[7]),aa[8]

print ("NO       FONCTION         A         B         D")
for i in range(0,9):
    
    print("{:>2d}{:>15s}{:>10.3g}{:>10.3g}{:>10.3g}".format(i+1,f[i],a[i],b[i],d[i]))


